from django.contrib import admin
from django.urls import path,include

from books import views_apiview,views_genericapiview,views_mixinview,views_childview,views_viewsetview
from . import views_serialzier

# drf提供的视图集自动生成路由类
from rest_framework.routers import SimpleRouter
# 初始化生成路由类对象
router = SimpleRouter()
# 路由的注册生成 第一个参数路由前缀 第二个参数调用的视图类 第三个参数 路由命名
router.register('viewsetbooks',views_viewsetview.BooksView,basename='books')
# 获取路由结果 需要将生成的路由添加到urlpatterns路由列表中
# print(router)



urlpatterns = [
    # path('admin/', admin.site.urls),
    # path('books/',views.BooksView.as_view() ),
    # path('books/<int:id>/', views.BookView.as_view()),

    path('books/',views_serialzier.BooksView.as_view() ),
    path('books/<int:id>/', views_serialzier.BookView.as_view()),

    # 英雄类
    path('heros/',views_serialzier.HerosView.as_view() ),
    path('heros/<int:id>/', views_serialzier.HeroView.as_view()),

    # APIView的使用
    path('api/books/', views_apiview.BooksView.as_view()),
    path('api/books/<int:id>/', views_apiview.BookView.as_view()),

    # GenericAPIView的使用
    path('gapi/books/', views_genericapiview.BooksView.as_view()),
    path('gapi/books/<int:pk>/', views_genericapiview.BookView.as_view()),
    # 如果使用视图中的get_object方法必须匹配值为pk值

    # 拓展类的使用
    path('mixin/books/', views_mixinview.BooksView.as_view()),
    path('mixin/books/<int:pk>/', views_mixinview.BookView.as_view()),

    # 拓展类子类的使用
    path('child/books/', views_childview.BooksView.as_view()),
    path('child/books/<int:pk>/', views_childview.BookView.as_view()),

    # # 视图集的使用
    # path('viewset/books/', views_viewsetview.BooksView.as_view({'post':'create','get':'list'})),
    # path('viewset/books/<int:pk>/', views_viewsetview.BooksView.as_view({'get':'retrieve'})),
    # path('viewset/books/last_book/', views_viewsetview.BooksView.as_view({'get':'last_book'})),

    # path('', include(router.urls))


]

# urlpatterns.append(router.urls)
urlpatterns+=router.urls
# print(urlpatterns)